$(document).ready(function() {
	$("#datepicker").datepicker({dateFormat: 'dd/mm/yy'});
	$("#datepicker").datepicker("setDate",new Date());
	$("#ui-datepicker-div").css("display","none");
	var isVisualiserPerimetre = $("#isVisualiserPerimetre").val();
	$( window ).load(function() {
	
		if(isVisualiserPerimetre){
			var perimetre =sessionStorage.getItem("perimetreVisualiserPerimetre");
		}else{
			var perimetre =sessionStorage.getItem("perimetreVisualiserActivite");
		}
		if(perimetre!=null && perimetre!=0){
		 $("#selectPerimetre").val(perimetre);
		 selectActivite();
		}
		var activite = sessionStorage.getItem("activiteVisualiserActivite");
		if(activite!=null && activite!=0){
			$("#selectActivite option:selected").val(activite);
			selectTache();
		}
		
		});
	
	$( window ).unload(function() {
		if(isVisualiserPerimetre){
			sessionStorage.setItem("perimetreVisualiserPerimetre", $("#selectPerimetre").val());
		}else{
			sessionStorage.setItem("perimetreVisualiserActivite", $("#selectPerimetre").val());
			sessionStorage.setItem("activiteVisualiserActivite", $("#selectActivite option:selected").val());
		}
		sessionStorage.setItem("idUtilisateur",$("#idUtilisateur").val());
		});
	
	
	// gere le changement de valeur du select des périmetres
	$("#selectPerimetre").change(selectActivite);
	
	// recupere les activites
	function selectActivite() {
		
		$("#erreur").css("display","none");
		
		var idPerimetre = $("#selectPerimetre option:selected").val();
		var idUtilisateur = $("#idUtilisateur").val();
		if (idPerimetre == 0 ){
			return;
		}
		
		var data = {
			"idPerimetre" : idPerimetre,
		};
		$.getJSON('ajax/ajaxGetListeActiviteByPerimetre.action', data, function(data) {
			if(isVisualiserPerimetre){
				remplirTableauActivite(data);
			}else{
				remplirSelectActivite(data);
			}
		});
	}
	
	// gere le changement de valeur du select des périmetres
	$("#selectActivite").change(selectTache);
	
	// recupere les taches
	function selectTache() {
		$("#erreur").css("display","none");
		var idActivite = $("#selectActivite option:selected").val();
		
		var idUtilisateur = $("#idUtilisateur").val();
		var date = $("#datepicker").val();
		
		if (idActivite == 0){
			return;
		}
		var data = {
			"idActivite" : idActivite,
		};
		$.getJSON('ajax/ajaxGetListeTacheByActivite.action', data, function(data) {
			remplirTableauTache(data);
		});
		
	}
	
	
	// rempli le select avec les activités associées au périmetre
	function remplirSelectActivite(data) {
		$("#selectActivite option").remove();
		$("#selectActivite").removeAttr("disabled");
		var options;
		options += '<option value=\"'+0+'\" selected>'+'-- Choisissez une activité --'+'</option>';	
		$.each(data.listeActivites, function(i, activite) {
				options += '<option value=\"'+activite.id+'\">'+activite.libelle+'</option>';
		});
		$("#selectActivite").html(options);
		var activiteId = sessionStorage.getItem("activiteVisualiserActivite");
		var perimOldId = sessionStorage.getItem("perimetreVisualiserActivite");
		var perimId= $("#selectPerimetre").val();
		if(activiteId!=null && activiteId!=0&& perimId==perimOldId){
		$("#selectActivite").val(activiteId);
		}
	}
	
	// rempli le tableau des taches
	function remplirTableauTache(data){
		var ligne ='';
		var allCharge=0;
		var allConsomme=0;
		var allDerive=0;
		var allRaf=0;
		$.each(data.listeTaches, function(i, tache) {
			ligne += '<tr>';
			var utilisateurLibelle = "";
			if (tache.utilisateur != null){
				utilisateurLibelle = tache.utilisateur.nom +' '+tache.utilisateur.prenom;
			}
			var tacheLibelle =tache.libelle;
			var idTache = tache.id;
			var commentaire =tache.commentaire;
			var raf = tache.raf;
			var consommeTotal = tache.consommeTotal;
			var chargeInit = tache.chargeInit;
			var derive = chargeInit - (consommeTotal+raf);
			var etat = tache.etat.libelle;
			var cssDerive = 'deriveOK';
			if(derive<0){
				cssDerive ='deriveKO';
			}
			
			ligne +='<td class=\"tdSaisie\">'+tacheLibelle+'</td>';
			ligne +='<td class=\"tdSaisie\">'+chargeInit+'</td>';
			ligne +='<td class=\"tdSaisie\">'+etat+'</td>';
			ligne +='<td class=\"tdSaisie\">'+raf+'</td>';
			ligne +='<td class=\"tdSaisie\">'+consommeTotal+'</td>';
			ligne +='<td class=\"tdSaisie\" id='+cssDerive+'>'+derive+'</td>';
			ligne +='<td class=\"tdSaisie\">'+utilisateurLibelle+'</td>';
			ligne +='<td class=\"tdSaisie\">'+commentaire+'</td>';
			ligne +='</tr>';
			allCharge=allCharge+chargeInit;
			allConsomme=allConsomme+consommeTotal;
			allDerive=allDerive+derive;
			allRaf=allRaf+raf;
		});
		dessinerGraph(allConsomme, allRaf, allDerive);
		$("#tacheTab").html(ligne);
		afficherRecap(allCharge, allConsomme, allDerive, allRaf,ligne);
	}
	
	function remplirTableauActivite(data){
		var ligne ='';
		var allCharge=0;
		var allConsomme=0;
		var allDerive=0;
		var allRaf=0;
		$.each(data.listeActivites, function(i, activite) {
			var activiteLibelle = activite.libelle;
			var etat = activite.etat.libelle;
			var remarque = activite.remarque;
			var chargeInit = 0;
			var raf = 0
			var consommeTotal = 0;
			var utilisateurLibelle = ''
			$.each(activite.tacheList, function(i, tache) {
				chargeInit += tache.chargeInit;
				raf += tache.raf;
				consommeTotal += tache.consommeTotal;
				if (tache.utilisateur != null){
					if(utilisateurLibelle.indexOf(tache.utilisateur.nom) == -1 || utilisateurLibelle.indexOf(tache.utilisateur.prenom) == -1){
						if(i!=0){
							utilisateurLibelle += ' | '
						}
						utilisateurLibelle += tache.utilisateur.nom +' '+tache.utilisateur.prenom;
					}
				}
			});
			var derive = chargeInit - (consommeTotal+raf);
			var cssDerive = 'deriveOK';
			if(derive<0){
				cssDerive ='deriveKO';
			}
			ligne +='<tr>';
			ligne +='<td class=\"tdSaisie\">'+activiteLibelle+'</td>';
			ligne +='<td class=\"tdSaisie\">'+chargeInit+'</td>';
			ligne +='<td class=\"tdSaisie\">'+etat+'</td>';
			ligne +='<td class=\"tdSaisie\">'+raf+'</td>';
			ligne +='<td class=\"tdSaisie\">'+consommeTotal+'</td>';
			ligne +='<td class=\"tdSaisie\" id='+cssDerive+'>'+derive+'</td>';
			ligne +='<td class=\"tdSaisie\">'+utilisateurLibelle+'</td>';
			ligne +='<td class=\"tdSaisie\">'+remarque+'</td>';
			ligne +='</tr>';
			
			allCharge += chargeInit;
			allConsomme += consommeTotal;
			allDerive += derive;
			allRaf += raf;
		});
		dessinerGraph(allConsomme, allRaf, allDerive);
		$("#activiteTab").html(ligne);
		afficherRecap(allCharge, allConsomme, allDerive, allRaf,ligne);
	}
	function dessinerGraph(allConsomme,allRaf,allDerive){
		// reinitialise le graph
		$('#doughnut').replaceWith('<canvas id="doughnut" height="300" width="400"></canvas>');
		var colorDerive = "#00FF00";
		if(allDerive<0){
			allDerive = Math.abs(allDerive);
			colorDerive="red";
		}
		// prépare les données
		var doughnutData = [ {
			value : (allConsomme),
			color : "#68dff0"
		},{
			value : (allRaf),
			color : "#ff8100"
		},
		{
			value : (allDerive),
			color : colorDerive
		} ];
		// récupere le context
		var context =$('#doughnut').get(0).getContext("2d");
		// applique
		new Chart(context).Doughnut(doughnutData);
	}
	
	function afficherRecap(allCharge, allConsomme, allDerive, allRaf, ligne){
		var recap = "#recapActivite";
		var msg = "Il n'y a aucune tache dans cette activité";
		if(isVisualiserPerimetre){
			msg= "Il n'y a aucune activite dans ce périmetre";
		}
		var deriveCss = 'deriveOK';
		if(allDerive<0){
			deriveCss = 'deriveKO';
		}
		$(recap).html("Charge : " + allCharge 
				+ " <span class='recapActiviteDetail' id='consomme'>Consomme : " + allConsomme 
				+ "</span> <span class='recapActiviteDetail' id='"+deriveCss+"'>Derive : " + allDerive 
				+ "</span> <span class='recapActiviteDetail' id='raf'>Raf : " + allRaf
				+"</span>");
		if(ligne.length==0){
			$("#col-lg-6-visualiser").css("display","none");
			$("#erreur").html(msg);
			$("#erreur").css("display","block");
		}else{
			$("#col-lg-6-visualiser").css("display","block");
		}
	}
	
});
